package com.dd.cloud.user.req.doctor;

import com.dd.cloud.common.annotate.FileSuffix;
import com.dd.cloud.common.annotate.validation.IDcard;
import com.dd.cloud.common.annotate.validation.Name;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalDate;

/**
 * @author Lx
 * @version 1.0
 */
@Data
public class DoctorDetailApplyAuthReq {
    /**
     * 身份证号码
     */
    @IDcard
    private String idCard;

    /**
     * 姓名
     */
    @Name(begin = "姓名")
    private String name;

    /**
     * 手机号
     */
    private String mobileNumber;

    /**
     * 头像地址
     */
    @FileSuffix(head = false)
    private String avatar;

    /**
     * 机构id(旧)
     */
    private Integer oldMechanId;

    /**
     * 机构id
     */
    private Integer mechanId;

    /**
     * 机构名称
     */
    private String oldOrganization;

    /**
     * 机构名称
     */
    private String organization;

    /**
     * 科室
     */
    private String department;

    /**
     * 擅长病种(旧)
     */
    @Size(max = 200, message = "擅长病种(旧)最长200个字符")
    private String oldGoodAt;

    /**
     * 擅长病种
     */
//    @NotBlank(message = "擅长病种不能为空")
    @Size(max = 200, message = "擅长病种最长200个字符")
    private String goodAt;

    /**
     * 医生技术职称
     */
    private String proCertificate;

    /**
     * 出生日期
     */
    private LocalDate birthDate;

    /**
     * 年龄
     */
//    @NotNull(message = "年龄不能为空")
    @Max(value = 120, message = "年龄范围应在18-120之间")
    @Min(value = 18, message = "年龄范围应在18-120之间")
    private Integer age;

    /**
     * 性别
     */
//    @NotBlank(message = "性别不能为空")
    private String sex;

    /**
     * 省份
     */
    private String province;

    /**
     * 城市
     */
    private String city;

    /**
     * 区县
     */
    private String district;

    /**
     * 详细地址
     */
    private String addr;

    /**
     * 医师资格证书编号
     */
    private String quaCertificateNo;

    /**
     * 医师资格证书获得时间
     */
    private LocalDate quaCertificateDate;

    /**
     * 医师执业证书编号
     */
    private String praCertificateNo;

    /**
     * 医师执业证书图片地址
     */
    @FileSuffix(head = false)
    private String praCertificatePhoto;

    /**
     * 医生资格证书照片
     */
    @FileSuffix(head = false)
    private String quaCertificatePhoto;

    /**
     * 医师职称证书图片地址
     */
    @FileSuffix(head = false)
    private String proCertificatePhoto;

    /**
     * 资质类型 1.乡村医生 2.执业医师
     */
    private Integer qualificationType;

    /**
     * 证书类型 1.乡村医生执业证,2.传统医学师承证出师证,3.传统医学医术确有专长证,4.乡镇执业助理医师,
     * 5.乡村全科执业助理医师证,6.执业助理医师证,7.中医（专长）医师资格证,8.中医康复理疗师,9.其他
     */
    private Integer certificateType;

    /**
     * 上传证件
     */
    @FileSuffix(head = false)
    private String certificateUrl;

    /**
     * 证书名称
     */
    private String certificateName;

    /**
     * 卫健委照片
     */
    @FileSuffix(head = false)
    private String healthCommitteePhoto;

    /**
     * 申请类型 1认证申请 2修改擅长疾病 3修改单位 4互联网执业备案申请
     */
    @NotNull(message = "申请类型不能为空")
    private Integer type;

    /**
     * 医生执业证书获得时间
     */
    private LocalDate praCertificateDate;

    /**
     * 医生工号
     */
    private String workCard;

    /**
     * 医生属性
     */
    private String attribute;

    /**
     * 医生类型
     */
    private String doctorType;

    /**
     * 专业技术职务类别
     */
    private String technicalCategories;

    /**
     * 专业技术职务
     */
    private String professionalTechnicians;

    /**
     * 执业范围
     */
    private String practiceArea;

    /**
     * 参加工作时间
     */
    private LocalDate workDate;

    /**
     * 是否保存数据(互联网备案使用) 1是 0否 默认不保存
     */
    private Integer isSave = 0;

    /**
     * 身份证正面
     */
    private String idCardFront;

    /**
     * 身份证反面
     */
    private String idCardBack;


    /**
     * 学历
     */
    private String educationBackground;

    /**
     * 职称
     */
    private String professionalTitle;

    /**
     * 爱好科室
     */
    private String hobbyDepartment;

    /**
     * 学校
     */
    private String school;


}
